﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum ВидыПоказателейСхемМотивации
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"38fada04-f1c6-4a16-9d30-588ff0979f37\", \"Представление\":\"ДляВсехОрганизаций\"}")]
		ДляВсехОрганизаций = 0,//Для всех организаций
	///<summary>
	///Вводится для всей компании (организации)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"179c9f76-dfad-4fef-9ff5-3819c2f41ff9\", \"Представление\":\"Общий\"}")]
		Общий = 1,//Для всей компании (организации)
	///<summary>
	///Вводится в целом по подразделению
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"25522891-e890-4c3c-8519-f3b16cb01bab\", \"Представление\":\"ПоПодразделению\"}")]
		ПоПодразделению = 2,//Для подразделения
	///<summary>
	///Вводится отдельно по сотрудникам
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"64430665-cc69-435d-b21c-78922e06fb81\", \"Представление\":\"Индивидуальный\"}")]
		Индивидуальный = 3,//Для сотрудника
	}
	public static partial class ВидыПоказателейСхемМотивации_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ДляВсехОрганизаций = new Guid("8f58309d-97f0-379f-4a16-f1c638fada04");//Для всех организаций
		///<summary>
		///Вводится для всей компании (организации)
		///</summary>
		public static readonly Guid Общий = new Guid("1938f59f-f4c2-f91f-4fef-dfad179c9f76");//Для всей компании (организации)
		///<summary>
		///Вводится в целом по подразделению
		///</summary>
		public static readonly Guid ПоПодразделению = new Guid("b1f31985-b06c-ab1b-4c3c-e89025522891");//Для подразделения
		///<summary>
		///Вводится отдельно по сотрудникам
		///</summary>
		public static readonly Guid Индивидуальный = new Guid("92781cb2-062e-81fb-435d-cc6964430665");//Для сотрудника
		public static ВидыПоказателейСхемМотивации Получить(this ВидыПоказателейСхемМотивации Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыПоказателейСхемМотивации Получить(this ВидыПоказателейСхемМотивации Значение, Guid Ссылка)
		{
			if(Ссылка == ДляВсехОрганизаций)
			{
				return ВидыПоказателейСхемМотивации.ДляВсехОрганизаций;
			}
			else if(Ссылка == Общий)
			{
				return ВидыПоказателейСхемМотивации.Общий;
			}
			else if(Ссылка == ПоПодразделению)
			{
				return ВидыПоказателейСхемМотивации.ПоПодразделению;
			}
			else if(Ссылка == Индивидуальный)
			{
				return ВидыПоказателейСхемМотивации.Индивидуальный;
			}
			return ВидыПоказателейСхемМотивации.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыПоказателейСхемМотивации Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыПоказателейСхемМотивации Значение)
		{
			switch (Значение)
			{
				case ВидыПоказателейСхемМотивации.ДляВсехОрганизаций: return ДляВсехОрганизаций;
				case ВидыПоказателейСхемМотивации.Общий: return Общий;
				case ВидыПоказателейСхемМотивации.ПоПодразделению: return ПоПодразделению;
				case ВидыПоказателейСхемМотивации.Индивидуальный: return Индивидуальный;
			}
			return Guid.Empty;
		}
	}
}